from flask_restplus import Namespace, Resource
from flask import request
from app.models import User,Blog,Comment
from app.apis.auth import auth
from app.extensions import db
from datetime import datetime



api = Namespace('comment', description='评论信息')


@api.route('/<int:cid>/')
class CommentAPI(Resource):
    def delete(self,cid):
        # 根据参数找到对象的博客
        comment = Comment.query.get(cid)
        # 判断当前的博客是你的博客
        user_id = request.json.get('user_id')

        if comment:
            if user_id == comment.comment_user_id:
                db.session.delete(comment)
                return '评论已删除'
            return '用户错误'
        return '该评论不存在'

@api.route('/')
class CommentList(Resource):
    method_decorators = [auth.login_required]
    # 发表评论
    def post(self):
        # 发表评论
        # 要评论的博客id
        blog_id = request.json.get('blog_id')
        # 查询博客是否存在
        blog = Blog.query.get(blog_id)
        # 评论人
        comment_user_id = request.json.get('comment_user_id')
        # 查询博客是否存在
        user = User.query.get(comment_user_id)
        # 评论的内容
        content = request.json.get('content')
        # 评论的时间
        create_time = datetime.now()
        if user:
            if blog:
                # 将评论信息存入数据库
                comments = Comment(content=content,comment_user_id=comment_user_id,
                                   blog_id=blog_id,create_time=create_time)
                db.session.add(comments)
                return '评论成功'
            return '要评论的博客不存在'
        else:
            return '该用户不存在'


